home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 38 / Amiga Format CD38 (1999-03-15)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-04].iso / -seriously_amiga- / programming / other / cyberxxxsrc / misc / math64.asm < prev    next >
Assembly Source File  |  1999-02-08  |  1KB  |  48 lines

  1. ;prog:phxass/gigaphxass txt/Math64.asm to obj/Math64.o noexe
  2.  
  3.     SECTION Math64,CODE
  4.  
  5.     XDEF    _add64
  6.  
  7. ; void __asm add64 (register __a0 struct EClockVal *dst,
  8. ;                   register __a1 struct EClockVal *src);
  9.  
  10. _add64:         addq.l  #4,a1
  11.                 addq.l  #4,a0
  12.                 move.l  (a1),d0
  13.                 add.l   d0,(a0)
  14.                 addx.l  -(a1),-(a0)
  15.                 rts
  16.  
  17.  
  18.     XDEF    _sub64
  19.  
  20. ; void __asm sub64 (register __a0 struct EClockVal *dst,
  21. ;                   register __a1 struct EClockVal *src);
  22.  
  23. _sub64:         addq.l  #4,a1
  24.                 addq.l  #4,a0
  25.                 move.l  (a1),d0
  26.                 sub.l   d0,(a0)         ; dst->lo - src->lo
  27.                 subx.l  -(a1),-(a0)     ; dst->hi - src->hi
  28.                 rts
  29.  
  30.  
  31.     XDEF    _cmp64
  32.  
  33. ; int __asm cmp64 (register __a0 struct EClockVal *dst,
  34. ;                  register __a1 struct EClockVal *src);
  35.  
  36. _cmp64:         cmpm.l  (a1)+,(a0)+     ; (a0)-(a1), dst->hi - src->hi
  37.                 bne.b   1$
  38.                 cmpm.l  (a1)+,(a0)+     ; dst->lo - src->lo
  39.                 bne.b   1$
  40.                 moveq   #0,d0           ; dst=src
  41.                 rts
  42. 1$:             bpl.b   2$
  43.                 moveq   #1,d0           ; dst<src
  44.                 rts
  45. 2$:             moveq   #-1,d0          ; dst>src
  46.                 rts
  47.                 end
  48.